1. Field of the Invention
The present invention relates to the field of software testing and more particularly to the field of test automation across multiple host computing platforms.
2. Description of the Related Art
The art of software development extends far beyond a mere coding of a functional specification for a computer program. Modern software development conforms to a lifecycle which begins with the functional specification leading into the formulation of a suitable architecture for an application implementing the functional specification. The lifecycle continues with the physical coding of the application and includes iterative testing and modification cycles to ensure the integrity of the code. Finally, the execution of the completed code can be analyzed to facilitate the further revision of the code to improve the performance of the code.
Traditional testing of a computer program can include the external monitoring of the integrity of the program and the performance of the program, either subjectively based upon end user impression, or objectively based upon independently acquired metrics. In the latter circumstance, the integrity of the program can include the simulation of user interaction with the user interface of the program to ensure the proper operation of the program logic. Likewise, the performance of the program can include an internal monitoring of the code through software test tooling as is known in the art.
Often, to test an application, testing personnel must establish and configure a testing environment. To the extent that the application is to be tested across multiple host computing platforms, the testing environment must be established and configured for each host computing platform—a very tedious and time and resource intensive process. In fact, it is well known that more than half of the time consumed by testing personnel is consumed in the course of establishing and configuring host environments for different host computing platforms. In this regard, the process of establishing and configuring host environments can be quite complex and repetitive.
Presently, it is known to automate individual steps and portions of a testing protocol. Common techniques include operating system scripts, batch files and the like. Yet, each of the foregoing techniques generally is platform specific and cannot scale to include multiple disparate host computing platforms. In fact, the fragmented and piecemeal nature of the foregoing techniques inhibits resource sharing and re-use in practice. Thus, the desirable principles of re-use and resource sharing have not been applied to multi-platform test automation.